﻿using KMeansAlgorithm;
using LearningWorkbench.Configuration;
using MachineLearning.BackPropagatingNeuralNetwork;
using MongoDB.Bson;
using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LearningWorkbench
{
    public static class WorkbenchModel
    {
        public static List<string> InputFieldNames { get; set; }
        public static KMeansResult ClusterResult { get; set; }
        public static List<string> TargetFieldNames { get; set; }
        public static List<string> PrepInputFieldNames { get; set; }
        public static List<string> PrepTargetFieldNames { get; set; }
        public static List<string> Ids { get; set; }
        public static List<double[]> Inputs { get; set; }
        public static List<double[]> Targets { get; set; }
        public static List<ColumnTransformation> ColumnTransformations { get; set; }
        public static List<Normalization> Normalizations { get; set; }
        public static List<ColumnDiscreteField> ColumnDiscreteFields { get; set; }
        public static List<ColumnFilter> ColumnFilters { get; set; }
        public static MongoCollection<LazyBsonDocument> CurrentCollection { get; set; }
        public static NeuralNetwork[] BAnns { get; set; }
        public static bool PrepActive { get; set; }

        static WorkbenchModel()
        {
            InputFieldNames = new List<string>();
            TargetFieldNames = new List<string>();
            PrepInputFieldNames = new List<string>();
            PrepTargetFieldNames = new List<string>();
            Ids = new List<string>();
            Inputs = new List<double[]>();
            Targets = new List<double[]>();
            ClusterResult = new KMeansResult();
        }
    }
}
